#ifndef _CCSPARAMETER_H_
#define _CCSPARAMETER_H_

#include "Common.h"
#include "CCSEvent.h"

class IConfigurationSys;

typedef lvInt	ParamType;
#define PT_UNKNOWN	0
#define PT_STRING	1
#define PT_INTEGER	2
#define PT_FLOAT	3
#define PT_BOOLEAN	4

class ConfigurationSys;

class CCSParameter
{
	friend class ConfigurationSys;
public:
	lvInt		toInt() const;
	lvFloat		toFloat() const;
	lvBool		toBool() const;
	lvString	&toString() const;

	ParamType getType() const;

	lvInt		&operator=(const lvInt &Integer);
	lvFloat		&operator=(const lvFloat &Float);
	lvBool		&operator=(const lvBool &Boolean);
	lvString	&operator=(const lvString &String);

	CCSEvent &onChange();
protected:
	CCSParameter(ParamType Type);
	~CCSParameter();

	ParamType	m_ptType;
	lvString	m_strValue;
	CCSEvent	m_evOnChange;
};

#endif